            // 缓动思路 1 让盒子每次移动距离慢慢变小 ，速度就会慢下来
            // 2 核心算法 （目标值 - 现在的位置）/ 10 做为每次移动距离 步长
            // 3 停止的条件是： 让现在盒子位置等于目标位置就停止定时器
            function animate2 (obj, target, callback) { 
                // 解决方案 只让一个定时器执行
            clearInterval(obj.timer); // 先清除之前的定时器，只保留当前的一个定时器执行
            obj.timer = setInterval(function () {
                // 步长写在定时器里面
                // 把我们步长值改为整数，不要出现小数点问题
                let step = (target - obj.offsetTop) / 10;
                step =  step > 0 ? Math.ceil(step) : Math.floor(step); 
                if (obj.offsetTop == target) {
                    // 停止动画（计时器）
                    clearInterval (obj.timer); 
                    // 回调函数写在定时器结束里面
                    if (callback) {
                        // 调用函数
                        callback();
                    } 
                } else {
                    obj.style.top = obj.offsetTop + step + 'px';
                }
            },15)
        }
        // 匀速动画 就是 盒子当前位置 + 固定的值 10
        // 缓速动画 就是 目标值 - 现在的位置）/ 10 做为每次移动距离 步长
      